package cn.edu.wynu.d15_stringbuilder;
/*
StringBuilder
1、StringBuilder代表可变字符串对象，相当于是一个容器，它里面装的字符串是可以改变的，就是用来操作字符串的。
2、好处:StringBuilder比String更适合做字符串的修改操作，效率会更高，代码也会更简洁。

            构造器                                 说明
public StringBuilder()              创建一个空白的可变的字符串对象，不包含任何内容
public StringBuilder(String str)    创建一个指定字符串内容的可变字符串对象

            方法名称                                说明
public StringBuilder append(任意类型)  添加数据并返回StringBuilder对象本身
public StringBuilder reverse()        将对象的内容反转
public int length()                   返回对象内容长度
public String toString()              通过toString()就可以实现把StringBuilder转换为String
*/

/*
StringBuffer与StringBuilder
注意:
1、StringBuffer的用法与StringBuilder是一模一样的
2、但 StringBuilder是线程不安全的，StringBuffer是线程安全的
*/

public class Test {
    public static void main(String[] args) {
        // 掌握StringBuilder的用法和作用
        // StringBuilder s = new StringBuilder(); // s ""
        // StringBuilder s = new StringBuilder("java"); // s "java"
        StringBuffer s = new StringBuffer("java"); // s "java"

        // 1、拼接内容
        s.append(8); // s "java8"
        s.append("hello"); // s "java8hello"
        s.append(true); // s "java8hellotrue"

        // 支持链式编程
        s.append(123).append("张三").append(123);
        System.out.println(s); // java8hellotrue

        // 2、反转操作
        s.reverse(); // s "321三张321eurtolleh8avaj"
        System.out.println(s);

        // 3、返回字符串的长度
        System.out.println(s.length()); // 22

        // 4、把StringBuilder转换为String
        String rs = s.toString();
        System.out.println(rs);
    }
}
